package UI.funcionarios;

import gestorBD.Controlador;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import static uiMain.bienRaizOk.ventana;

public class PanelOpcionesDeFuncionario extends JPanel {

    JLabel labelTitulo;
    JLabel labelDescripcion;
    JScrollPane scrollListaOpciones;
    JList listaOpciones;
    JLabel labelLaOpcionElegidaEs;
    JLabel labelNombreDeLaOpcionElegida;
    JButton botonAceptar;

    public PanelOpcionesDeFuncionario() {
        super();
        this.setLayout(new GridBagLayout());

        GridBagConstraints c = new GridBagConstraints();

        labelTitulo = new JLabel("Procesos y consultas");
        c.gridx = 0;
        c.gridy = 0;
        c.gridwidth = 2;
        c.gridheight = 1;
        this.add(labelTitulo, c);

        labelDescripcion = new JLabel("Descripción del detalle del proceso y/o consulta");
        c.gridx = 0;
        c.gridy = 1;
        c.gridwidth = 1;
        c.gridheight = 1;
        this.add(labelDescripcion, c);

        listaOpciones = new JList(Controlador.obtenerListaDeOpciones());
        listaOpciones.setVisibleRowCount(5);
        listaOpciones.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        scrollListaOpciones = new JScrollPane(listaOpciones);
        c.gridx = 0;
        c.gridy = 2;
        c.gridwidth = 1;
        c.gridheight = 4;
        this.add(scrollListaOpciones, c);

        labelLaOpcionElegidaEs = new JLabel("La opción elegida es:");
        c.gridx = 1;
        c.gridy = 2;
        c.gridwidth = 1;
        c.gridheight = 1;
        this.add(labelLaOpcionElegidaEs, c);

        labelNombreDeLaOpcionElegida = new JLabel();
        labelNombreDeLaOpcionElegida.setForeground(Color.RED);
        c.gridx = 1;
        c.gridy = 4;
        c.gridwidth = 1;
        c.gridheight = 1;
        this.add(labelNombreDeLaOpcionElegida, c);

        botonAceptar = new JButton("Aceptar");
        c.gridx = 1;
        c.gridy = 7;
        c.gridwidth = 1;
        c.gridheight = 1;
        this.add(botonAceptar,c);

        //Se añaden las funcionalidades
        listaOpciones.addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {

                labelNombreDeLaOpcionElegida.setText(listaOpciones.getSelectedValue().toString());

            }

        });

        botonAceptar.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String opcionSeleccionada = "";
                try{
                    opcionSeleccionada = listaOpciones.getSelectedValue().toString();
                }
                catch (Exception ex){
                    labelNombreDeLaOpcionElegida.setText("Seleccione una opción");
                }
                if (opcionSeleccionada.equals("Cambiar mi contraseña")) {
                    ventana.setPanelAnterior(new PanelOpcionesDeFuncionario());
                }
                ventana.ejecutar(opcionSeleccionada);

            }
        });

    }
}
